﻿using System;
using System.Dynamic;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SDE_FIC.DAO;
using SDE_FIC.Models;
using PagedList;

namespace SDE_FIC.Controllers
{
    public class DiarioController : Controller
    {
        private DBConnect _db = null;

        public DiarioController()
        {
            _db = DBConnect.GetInstance();
        }
        //
        // GET: /Diario/
        public ActionResult Index(int? pagina)
        {
            int tamanhoPagina = 10;
            int numeroPagina = pagina ?? 1;
           
            TurmaDAO turmasDAO = new TurmaDAO(ref _db);                
            FuncionarioDAO funcionarioDAO = new FuncionarioDAO(ref _db);
            Funcionario _funcionario = new Funcionario();

            var NomeComleto = Session["LogedUserNomeCompleto"].ToString();

            if (Session["LogedUserPerfil"].ToString() == "coordenador")
            {
                List<Turma> lTurma = turmasDAO.All().ToList();
                return View("~/Views/Sistema/Diario/Index.cshtml", lTurma.ToPagedList(numeroPagina, tamanhoPagina));
            }
            else
            {
                _funcionario.IdFuncionario = funcionarioDAO.LoadByNome(NomeComleto).IdFuncionario;
                List<Turma> lTurma = turmasDAO.LoadByFuncionario(ref _funcionario, true).ToList();
                                if (lTurma == null)
                {
                    return View("~/Views/Sistema/Diario/Index.cshtml");
                }
                else {
                    return View("~/Views/Sistema/Diario/Index.cshtml", lTurma.ToPagedList(numeroPagina, tamanhoPagina));
                }
            }

        }

        [HttpPost]
        public ActionResult Index(Diario d)
        {

            DiarioDAO diarioDAO = new DiarioDAO(ref _db);
            
            
            return View();

        }
        //
        // GET: /Diario/Frequencia/5

        public ActionResult Frequencia(int id = 0)
        {
            Diario diario = null;

            try
            {
                DBConnect _db = DBConnect.GetInstance();
                DiarioDAO diarioDAO = new DiarioDAO(ref _db);
                TurmaDAO turmaDAO = new TurmaDAO(ref _db);

                Turma _t = new Turma();
                _t.Idturma = id;

                diario = diarioDAO.diarioByTurma(ref _t, DateTime.Now, new UnidadeCurricular());

                //Diário não localizado, carregar lista de matriculas vazias
                if (diario == null)
                {
                    
                    diario = new Diario();

                    FrequenciaDAO frequenciaDAO = new FrequenciaDAO(ref _db);
                    diario.Frequencias = frequenciaDAO.LoadByTurma (ref _t);
                    diario.Turma = turmaDAO.LoadById(_t.Idturma);

                }

            }
            catch (Exception _ex)
            {
                //Tratar erro aqui....
                ViewBag.Error = "Falha ao consultar registros." + _ex.Message;

            }
            if (diario == null) { diario = new Diario(); }

            return View("~/Views/Sistema/Diario/Frequencia.cshtml", diario);
        }

        //
        // GET: /Diario/Details/5
        public ActionResult Details()
        {
            return View();
        }

    }

}
